// 全部请求返回数据相同的类型
export interface ResponseData {
  code: number
  message: string
  ok: boolean
}
// 预约规则的ts类型
export interface BookingRule {
  cycle: number // 预约周期
  releaseTime: string // 放号时间
  stopTime: string // 停挂时间
  quitDay: number // 提前取消预约天数
  quitTime: string // 退号时间
  rule: string[] // 预约规则
}
// 医院的ts数据类型
export interface Hospital {
  id: string
  param: {
    hostypeString: string // 医院等级名称
    fullAddress: string // 医院地址
  }
  hoscode: string
  hosname: string // 医院名称
  hostype: string
  districtCode: string
  address: string // 地址
  logoData: string // logo
  route: string // 乘车路线
  intro: string // 医院简介
  status: number
}
// 获取医院详情返回的数据类型
export interface HospitalDetail extends ResponseData {
  data: {
    bookingRule: BookingRule
    hospital: Hospital
  }
}
// 医院科室的ts类型
export interface Department {
  depcode: string
  depname: string
  children?: Department[] | null
}
// 获取医院科室列表返回的数据类型
export interface DepartmentResponseData extends ResponseData {
  data: Department[]
}
// 获取指定医院科室每天预约数据的类型
export interface booking {
  workDate: string // 预约日期 xx年xx月xx日
  workDateMd: string // 预约日期 xx月xx日
  dayOfWeek: string // 预约日期是周几
  docCount: number
  reservedNumber: number // 预约总数
  availableNumber: number // 剩余预约数
  status: number // -1 停止挂号 0 可挂号 1 等待放号
}
// 获取指定医院科室的预约时间表类型
export type bookingScheduleList = booking[]
// 获取指定医院科室基本信息的类型
export interface baseMap {
  workDateString: string // 预约日期 xx年xx月
  releaseTime: string // 放号时间
  bigname: string // 科室一级名称
  stopTime: string // 停挂时间
  depname: string // 科室二级名称
  hosname: string // 医院名称
}
// 获取指定医院科室预约信息返回到的数据类型
export interface HospitalWorkData extends ResponseData {
  data: {
    total: number
    bookingScheduleList: bookingScheduleList
    baseMap: baseMap
  }
}
// 值班医生的数据类型
export interface Doctor {
  id: string // 当前医生的id
  param: {
    dayOfWeek: string
    depname: string
    hosname: string
  }
  hoscode: string
  depcode: string
  title: string // 医生职位
  docname: string // 医生姓名
  skill: string // 医生主治类型
  workDate: string // 当前挂号日期
  workTime: number // 工作时间 0 上午 1 下午
  reservedNumber: number // 预约总人数
  availableNumber: number // 剩余预约人数
  amount: number // 挂号费
  status: number
  hosScheduleId: string
}
// 获取到当天医生排班信息的类型
export interface DoctorSchedule extends ResponseData {
  data: Doctor[] | [] // 当没有医生排班信息时，返回的是一个空数组
}
// 获取挂号医生信息返回的数据类型
export interface DoctorInfoResponseData extends ResponseData {
  data: Doctor
}
